package com.cetool.autocms.controller.login;

import com.cetool.autocms.pojo.dto.login.ClientUserInfoDTO;
import com.cetool.autocms.pojo.dto.login.UserInfoDTO;
import com.cetool.autocms.pojo.request.login.LoginRequest;
import com.cetool.autocms.service.login.LoginService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.validation.Valid;

/**
 * 登陆管理控制层
 *
 * @author 戴越
 * @date 2021/11/9
 */
@RestController
@RequestMapping("/login")
@Api(tags = "登陆管理")
public class LoginController {
    /**
     * 注入登陆管理服务
     */
    @Autowired
    private LoginService loginService;

    /**
     * 管理员登陆
     *
     * @param request 管理员登陆请求实体
     * @return 用户信息传输实体
     * @author 戴越
     * @date 2021/11/5
     */
    @PostMapping("/adminLogin")
    @ApiOperation(value = "管理员登陆")
    public UserInfoDTO adminLogin(@Valid @RequestBody LoginRequest request) {
        return loginService.adminLogin(request);
    }

    /**
     * 客户端登陆
     *
     * @param request 客户端登陆请求实体
     * @return 客户端账号信息传输实体
     * @author 戴越
     * @date 2021/11/5
     */
    @PostMapping("/clientLogin")
    @ApiOperation(value = "客户端登陆")
    public ClientUserInfoDTO clientLogin(LoginRequest request) {
        return loginService.clientLogin(request);
    }

}
